<?php

use Yaf\Dispatcher;
use const YAF\VERSION;

/**
 * 开放API
 * Class BotController
 */
class OpenController extends BaseController
{
    /**
     * 默认初始化方法，如果不需要，可以删除掉这个方法
     * 如果这个方法被定义，那么在Controller被构造以后，Yaf会调用这个方法
     */
    public function init()
    {
        $this->createMemberRegistry();
        // 关闭自动渲染模板
        Dispatcher::getInstance()->disableView();
    }

    /**
     * JSON响应
     * Yaf支持直接把\Yaf\Request_Abstract::getParam()得到的同名参数作为Action的形参
     *
     * @param string $name
     * @return bool
     */
    public function indexAction(string $name = 'IYUU'): bool
    {
        switch (strtoupper($name)) {
            case 'PARAMS':
                return $this->json($this->getRequest()->getParams());
            case 'GET':
                return $this->json($_GET);
            case 'POST':
                return $this->json($_POST);
            case 'COOKIE':
                return $this->json($_COOKIE);
            case 'HEADER':
                return $this->json($this->MyRequest->getDataBySource('header'));
            case 'SERVER':
                return $this->json($_SERVER);
            case 'REQUEST':
                return $this->json($_REQUEST);
            default:
                $file = str_replace(APPLICATION_PATH, '', __FILE__);
                $rs = [
                    'name'  =>  $name,
                    'file'  =>  $file,
                    'method'=>  __METHOD__,
                    'version' => VERSION,
                ];
                return $this->json($rs);
        }
    }
}
